#!/usr/bin/env python
"""
启动AI审核工作器
"""

import os
import sys
import django
import time
import threading

# 设置Django环境
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Didi.settings.dev')
django.setup()

from order.audit_worker import audit_worker
from order.mongo_models import PendingComment

def start_audit_worker():
    """启动审核工作器"""
    print("🚀 启动AI审核工作器...")
    
    try:
        # 检查MongoDB连接
        pending_comment = PendingComment()
        print("✅ MongoDB连接正常")
        
        # 获取待审核评论数量
        pending_comments = pending_comment.get_pending_comments()
        print(f"📋 待审核评论数量: {len(pending_comments)}")
        
        if pending_comments:
            print("📝 待审核评论列表:")
            for comment in pending_comments:
                print(f"  - ID: {comment['_id']}")
                print(f"    内容: {comment.get('comment', 'N/A')}")
                print(f"    评分: {comment.get('rating', 'N/A')}")
                print(f"    状态: {comment.get('audit_status', 'N/A')}")
                print()
        
        # 启动审核工作器
        if not audit_worker.running:
            print("🔄 正在启动审核工作器...")
            
            # 在新线程中启动工作器
            worker_thread = threading.Thread(target=audit_worker.start, daemon=True)
            worker_thread.start()
            
            # 等待工作器启动
            time.sleep(2)
            
            if audit_worker.running:
                print("✅ 审核工作器启动成功")
            else:
                print("❌ 审核工作器启动失败")
        else:
            print("✅ 审核工作器已在运行")
        
        return True
        
    except Exception as e:
        print(f"❌ 启动审核工作器失败: {str(e)}")
        import traceback
        traceback.print_exc()
        return False

def monitor_audit_progress():
    """监控审核进度"""
    print("\n📊 监控审核进度...")
    
    try:
        pending_comment = PendingComment()
        
        for i in range(10):  # 监控10次
            pending_comments = pending_comment.get_pending_comments()
            print(f"第{i+1}次检查 - 待审核评论数量: {len(pending_comments)}")
            
            if len(pending_comments) == 0:
                print("✅ 所有评论已审核完成")
                break
                
            time.sleep(3)  # 等待3秒
            
    except Exception as e:
        print(f"❌ 监控审核进度失败: {str(e)}")

def main():
    """主函数"""
    print("=" * 50)
    print("🤖 AI审核工作器启动程序")
    print("=" * 50)
    
    # 启动审核工作器
    if start_audit_worker():
        # 监控审核进度
        monitor_audit_progress()
    
    print("\n" + "=" * 50)
    print("📋 启动完成")
    print("\n💡 提示：")
    print("1. 审核工作器会在后台持续运行")
    print("2. 会自动处理MongoDB中的待审核评论")
    print("3. 审核通过的评论会同步到MySQL")
    print("4. 可以通过API查看审核状态")

if __name__ == "__main__":
    main() 